const parser = require("@babel/parser");
const traverse = require("@babel/traverse").default;
const t = require("@babel/types");
const generator = require("@babel/generator").default;
const fs = require("fs");

// ===== paths =====
const inputPath = "code2.js"; // 原始混淆 JS
const outputPath = "de_code2.js"; // 输出
const jscode = fs.readFileSync(inputPath, "utf-8");
let ast = parser.parse(jscode, { sourceType: "unambiguous" });

// ========= 1. 提取字典 =========
// 由你已有逻辑填充（此处保持你的占位/接入点）
let dict =  [
    "TSyPT",
    "MHuIE",
    "144",
    "GDFjv",
    "PUxUO",
    "GfKmV",
    "DLfme",
    "GDvLs",
    "qmiGa",
    "IZFWD",
    "feedbackInit",
    "VuzuG",
    "managed",
    "xAXrx",
    "M15.3125 6H13V16.7184L19.2438 23.2108L20.9088 21.6094L15.3125 15.7877V6Z",
    "failure",
    "digest",
    "size-",
    "AnymE",
    "Blob",
    "S/uYaRYF7W9rsNhCVnzt5mtI2NpWxe0va0PYsVZj7dFritgYVvvtaWsc2IZW4+1Ra4/YJVbp7XtrythYVnLtAGtN2NdWjO0Wa5AtIlZumARrwi0wViCYkmvMLVZWxK/ZZch+6Dt6oRh4wHYyYYTpQKHEYX0BQIujYWnhQIeCYWDuQDvNYVUhQCn/YUUnQFyvYTnXQFXdYTPUQFOlYSmcQAB2YRvGQPIBYQ5IQB9dYfn6QBfzYfNGQBHQYe27QAjWYedgQLREYcwJQOMVYbcuQNJmYWv8QBpRYfclQKyWTmqeNx4o50WvjBKL4pstt6IcTHyLm/Yv5jhuMgf+J+6YClqnPudXEZKL4uzF8/sKRA==",
    "http://www.w3.org/2000/svg",
    "theme-",
    "TradM",
    "184",
    "QhFdt",
    "enIXt",
    "pow",
    "VCCSE",
    "MISCa",
    "Math",
    "abs",
    "Bgifd",
    "data",
    "tXLel",
    "location_mismatch_warning_aux",
    "HgqJ2",
    "CnhGh",
    "terminate",
    "uUKFj",
    "FTtsC",
    "140",
    "zxjEG",
    "isExtension",
    "vyktw",
    "110",
    "24899EVpAVy",
    "rotate(90 28.5 15)",
    "textContent",
    "chlApiRetryInterval",
    "mIFNV",
    "sIZyy",
    "xOOTa",
    "jdc",
    "fgcYP",
    "SuLTh",
    "qlmQn",
    "Fxzyo",
    "ykukJ",
    "TMbff",
    "jXRLT",
    "aGeLk",
    "darkmode",
    "knHhn",
    "forceFail",
    "6|3|11|10|12|0|4|16|14|1|5|15|9|2|13|7|8",
    "180",
    "159",
    "1512147tmyjeo",
    "tnWtW",
    "0xff",
    "RNTle6",
    "XXymM",
    "MlsLB",
    "requestTurnstileResults",
    "MBJpE",
    "RzKsC",
    "application/json",
    "GOKuH",
    "FlyVy",
    "DRGMp",
    "mQgFY",
    "address_changed",
    "yRGis",
    "146",
    "responseText",
    "oejJX",
    "rGLyq",
    "mhDJE",
    "128",
    "chlApivId",
    "gGonD",
    "fail-text",
    "ZMKEw",
    "lfubB",
    "classList",
    "CfKdo",
    "turnstileResults",
    "unsupported_browser",
    "YhMAz",
    "2|1|0|3|4",
    "YjjaO",
    "type",
    "map",
    "KoXrC",
    "kFbGn",
    "terms",
    "unspun",
    "XiVNF",
    "passive",
    "162",
    "cFPWv",
    "172",
    "testing_only_always_pass",
    "ui-heartbeat",
    "13EfFukE",
    "2|1|3|5|4|6|0",
    "uTEwi",
    "105",
    "101",
    "dtkYe",
    "MVum6",
    "cData",
    "lOnTx",
    "lineNo",
    "sBzuk",
    "OeDd6",
    "112",
    "jwpKs",
    "wqWTk",
    "ariaLive",
    "ioMtD",
    "119",
    "render",
    "oZoXt",
    "FENAf",
    "Whdfm",
    "ZlWYL",
    "iHmqs",
    "appearance",
    "pipeTo",
    "document",
    "main-wrapper",
    "orc-onerror",
    "padStart",
    "expired-i",
    "0x00e9d3dca1328a49ad3403e4badda37a6a13610b608b5099839e1074e720f5a33b2ebd8c2ffd12c09be0015a4635aa9d2022d8f72f90ed11610c3742b0baef5b7da73d7e79aff6cdbdeab72492ce0a858e4c1f4c27a14ebbb4ce3beacfda982fe74463e76f654aab0c597d5e73686ea149023e8f60ae6365a30055fe2c5eb2ebfb",
    "108",
    "jSSVF8",
    "XXXX.DUMMY.TOKEN.XXXX",
    "tiefTimeMs",
    "KVNqS",
    "CzMBB",
    "oDANq",
    "CpdzF",
    "HMaCd",
    "pMZka",
    "style",
    "133",
    "content-type",
    "107",
    "terms-link",
    "uPyZs",
    "pMcZn",
    "OdVjC8",
    "lSUpz",
    "YfxLA",
    "aSnya",
    "/reports/v0/post",
    "target",
    "#FBAD41",
    "16tVLpVU",
    "this",
    "MJvcY",
    "CVPkV",
    "NkkkO",
    "ncvac",
    "M61.8848 15.7841L62.0632 15.1578C62.2758 14.4126 62.1967 13.7239 61.8401 13.2178C61.5118 12.7517 60.9649 12.4773 60.3007 12.4453L47.7201 12.2836C47.6811 12.2829 47.6428 12.2728 47.6083 12.2542C47.5738 12.2356 47.5442 12.209 47.5217 12.1766C47.4996 12.1431 47.4856 12.1049 47.4807 12.0649C47.4758 12.025 47.4801 11.9844 47.4933 11.9465C47.5149 11.8839 47.5541 11.8291 47.6061 11.7888C47.658 11.7486 47.7204 11.7247 47.7856 11.72L60.4827 11.5566C61.9889 11.4864 63.6196 10.2462 64.1905 8.73372L64.9146 6.81361C64.9443 6.73242 64.951 6.64444 64.9341 6.55957C64.112 2.80652 60.8115 0 56.8652 0C53.2293 0 50.1421 2.38158 49.0347 5.69186C48.2864 5.12186 47.3535 4.85982 46.4228 4.95823C44.6785 5.13401 43.276 6.55928 43.1034 8.32979C43.059 8.77189 43.0915 9.21845 43.1992 9.64918C40.3497 9.73347 38.0645 12.1027 38.0645 15.0151C38.0649 15.2751 38.0838 15.5347 38.1212 15.7919C38.1294 15.8513 38.1584 15.9057 38.2029 15.9452C38.2474 15.9847 38.3044 16.0067 38.3635 16.0071L61.5894 16.0099C61.5916 16.0101 61.5938 16.0101 61.596 16.0099C61.6616 16.0088 61.7252 15.9862 61.7772 15.9455C61.8293 15.9049 61.867 15.8483 61.8848 15.7841Z",
    "0 0 52 52",
    "eOqui",
    "Ffqgx",
    "widgetId",
    "LnLZQ",
    "verifying-text",
    "WtTlB1",
    "UJfay",
    "then",
    "isFinite",
    "hHPEa6",
    "SgxPf",
    "M14.3081 21.9023V21.8853C14.3081 20.1655 15.674 18.7704 17.4952 18.7704C19.3164 18.7704 20.6653 20.1482 20.6653 21.8681V21.8853C20.6653 23.6052 19.2991 24.9994 17.4785 24.9994C15.6578 24.9994 14.3081 23.6222 14.3081 21.9023ZM18.9958 21.9023V21.8853C18.9958 21.0222 18.3806 20.2679 17.4785 20.2679C16.5846 20.2679 15.9858 21.0038 15.9858 21.8681V21.8853C15.9858 22.7484 16.6013 23.5025 17.4952 23.5025C18.3973 23.5025 18.9958 22.7666 18.9958 21.9023Z",
    "OQkk2",
    "0 0 73 25",
    "jZwGB",
    "failure-circle",
    "TTnRs",
    "chlApiUrl",
    "JNdDY",
    "chlApiAppareance",
    "[native code]",
    "script error",
    "wEBhT",
    "BlZdG",
    "LFjnX",
    "DTuYN",
    "label",
    "VGIZU",
    "PTiKF",
    "SYDtB2",
    "EJSfZ",
    "vroOO",
    "RtnZG",
    "aria-label",
    "onclick",
    "pCWJn",
    "GHue5",
    "uJIdp",
    "wHRGj",
    "createObjectURL",
    "0|4|3|2|1",
    "https://www.cloudflare.com/products/turnstile/?utm_source=turnstile&utm_campaign=widget",
    "oUloz",
    "LNZoK",
    "111",
    "izBil",
    "branding",
    "ITeRz",
    "KjWYP",
    "QYdQK",
    "DpQOc",
    "hxoIK",
    "KxTlr",
    "CvHSX",
    "NxjIY",
    "NObvQ",
    "rotate(-90 1.5 15)",
    "svg",
    "YcSKP",
    "#F6821F",
    "liGbz",
    "143",
    "indexOf",
    "M45.65 18.8904H47.2858V23.4254H50.1443V24.8798H45.65V18.8904Z",
    "timeout-msg",
    "jNLgu",
    "iKRwa",
    "nlowY5",
    "LsMgo8",
    "lang",
    "expired-circle",
    "pYKTs",
    "overrun-warning",
    "M54.4187 18.8475H55.9949L58.5079 24.8797H56.7541L56.3238 23.8101H54.047L53.6257 24.8797H51.9058L54.4187 18.8475ZM55.8518 22.5183L55.1941 20.8154L54.5278 22.5183H55.8518Z",
    "ZQBgr",
    "vMJwC",
    "vvBPO",
    "KdIpb",
    "time_check_cached_warning_aux",
    "ctAYB",
    "ORewM",
    "#verifying-i",
    "TvseC",
    "eNdwi",
    "never",
    "TPjth",
    "zglqZ",
    "BVVCR5",
    "WJWzE",
    "length",
    "XHHJ5",
    "cTplB",
    "YZNRF",
    "nUBhI",
    "161",
    "165",
    "kbYUt",
    "HOTxp",
    "M4.53824 22.6043C4.30918 23.13 3.82723 23.5022 3.18681 23.5022C2.29265 23.5022 1.67746 22.7493 1.67746 21.8851V21.8678C1.67746 21.0047 2.27593 20.2676 3.1698 20.2676C3.84367 20.2676 4.35681 20.6882 4.5734 21.2605H6.29764C6.02151 19.8349 4.78716 18.7707 3.18681 18.7707C1.36533 18.7707 0 20.1666 0 21.8851V21.9021C0 23.6219 1.3486 25 3.1698 25C4.72762 25 5.94525 23.9764 6.26645 22.6046L4.53824 22.6043Z",
    "bgVtp",
    "aoFca",
    "hszZc",
    "cType",
    "vFgQo",
    "keydown",
    "wKitV",
    "error-message",
    "MHxOR",
    "true",
    "LaADD",
    "loading",
    "BDIxz",
    "dkBtp",
    "DruPh",
    "WDfBQ",
    "SThJj",
    "154",
    "155",
    "NXrug",
    "eRhvL",
    "IAowZ",
    "zEBHE",
    "rkQkf2",
    "AMqFs",
    "timeout-refresh-link",
    "148",
    "179",
    "epEBu",
    "mlzjq",
    "siNDh",
    "KTZF6",
    "fail-i",
    "qRdrH",
    "uKgaU",
    "feedbackOrigin",
    "SHA-256",
    "chlApiLoopFeedbackEnabled",
    "IIGoH",
    "FBhvo",
    "subtle",
    "1|0|8|9|5|3|7|4|6|10|2",
    "success",
    "chlApiLanguage",
    "boLrT",
    ".jEmO7",
    "fvFHg",
    "lLtIk",
    "Cloudflare",
    "yTApb",
    "rtl",
    "[Cloudflare Turnstile] You are using an outdated version of Turnstile, which may cause challenge failures. Please make sure to embed the latest version.",
    "Sfpce",
    "MikjV",
    "fSNFD",
    "lang-",
    "jULcQ",
    "LcWOk",
    "njgwM",
    "YVaWb",
    "matchMedia",
    "ARzYU",
    "qDSza",
    "hKMH0",
    "mioly",
    "fromCharCode",
    "szyjC",
    "crypto",
    "ZIbTg",
    "random",
    "mzWsj",
    "DHXVQ",
    "jwyHB",
    "mode",
    "timeToParamsMs",
    "pathname",
    "postMessage",
    "cf-chl-out-s",
    "jonEe",
    "c_ray",
    "PpFLG",
    "MNGtM",
    "aYVCD",
    "lPDkn",
    "wPvVW",
    "siCvc",
    "cRjWF",
    "MTWOd",
    "DYiVm",
    "lWqOl",
    "qgNwS",
    "McmvJ",
    "click",
    "HUHKz",
    "AkfPU",
    "qUEcf",
    "ELbLJ",
    "huyk2",
    "aXRYh",
    "BMJUO",
    "eWiNi",
    "ubrsk",
    "Nsehj",
    "LNKFj",
    "getOwnPropertyNames",
    "166",
    "OdOr0",
    "pNvHC",
    "171",
    "dKlkD",
    "kJUlr",
    "183",
    "M22.6674 22.253V18.8901H24.3284V22.2191C24.3284 23.0822 24.7584 23.4939 25.4159 23.4939C26.0733 23.4939 26.5034 23.1003 26.5034 22.2617V18.8901H28.1647V22.2093C28.1647 24.1432 27.0772 24.9899 25.3991 24.9899C23.7211 24.9899 22.6674 24.1268 22.6674 22.2522",
    "1728140WrZKZQ",
    "ohPhH",
    "removeChild",
    "150",
    "GyZHU",
    "timeout-p1",
    "1|0|3|4|2",
    "turnstile-timeout-state",
    "readyState",
    "kMrGv",
    "apply",
    "rOphN",
    "25|2|34|23|27|29|21|5|31|6|16|11|35|32|9|24|0|36|1|20|12|10|7|22|30|33|13|17|15|3|26|4|8|18|14|28|19",
    "DZbSM",
    "BRaWO",
    "HgYgq3",
    "nPeas",
    "IJvBA",
    "BQqRf",
    "LbpDA",
    "challenge.privacy_link",
    "YFfPN5",
    "ltr",
    "lOGMe",
    "2|4|6|3|5|1|0",
    "input",
    "event",
    "turnstile-qr",
    "WfeIQ",
    "join",
    "KytHh",
    "js_cookies_missing_aux",
    "132",
    "languageUnsupported",
    "ILSZk",
    "rdMuA",
    "pqxrc",
    "gwWIr",
    "ePyoR",
    "GOVjI",
    "warn",
    "XUsbz",
    "116",
    "mBdGZ",
    "jzufV",
    "tdBHG",
    "brJlQ",
    "juBMv",
    "QiDVp",
    "lTpNj",
    "tGZwJ",
    "Pemqu1",
    "attachShadow",
    "122",
    "135",
    "WXAQ6",
    "lOTqE",
    "kPeQX",
    "chlApiOverrunBudgetMs",
    "ddXf2",
    "LtdVb",
    "BuPas",
    "iPxQP",
    "QXiSZ",
    "sTgPn7",
    "bJCKs",
    "wwulm",
    "AyZcW",
    "XLSRV",
    "TJzQf",
    "origin",
    "YHMEd",
    "jHnRw",
    "isArray",
    "span",
    "LNTAl",
    "slice",
    "viewBox",
    "ymVKC2",
    "BWetS",
    "120",
    "uxdvR",
    "GVxeP",
    "JdIcp",
    "ZHXAP",
    "jXMmy",
    "GUfRL",
    "102",
    "138",
    "lSrbe",
    "vWWvU",
    "JHGGl",
    "JqOJr",
    "Invalid code point: ",
    "tslD7",
    "fr-helper",
    "IrPd0",
    "neaXe",
    "PLSKX",
    "turnstile_feedback_report",
    "reject",
    "VWnem",
    "BjfiG",
    "nIJCX",
    "uiDly",
    "106",
    "wygGn",
    "jsFCp",
    "includes",
    "check_delays",
    "class=\"refresh_link\"",
    "cb-lb",
    "HzEBP",
    "nRDnZ",
    "setItem",
    "value",
    "MByXa",
    "verifying-i",
    "HsNKa",
    "tTpmf",
    "ZtNQC",
    "Qadr2",
    "JPabg",
    "RNIue",
    "BhwQe",
    "cb-i",
    "MKcIX",
    "OeDZs",
    "qNoHm",
    "yOphd",
    "117",
    "gvYeS",
    "revokeObjectURL",
    "vRwyf",
    "115",
    "refresh-timeout",
    "QIvVT",
    "challenge.terms",
    "TIyFk",
    "cf-chl-out",
    "170",
    "pRTSI6",
    "xPyVF",
    "ontimeout",
    "CbmyM",
    "WtMgF",
    "chlApiU",
    "hasOwnProperty",
    "cCSha",
    "source",
    "zbJRX",
    "chctx",
    "blrcm",
    "ZNyzU",
    "nDcUX",
    "eyCFZ",
    "103",
    "JIEiY",
    "qjalp",
    "parentNode",
    "widgetAgeMs",
    "wTaVr7",
    "3x00000000000000000000FF",
    "QZdSE",
    "#success-i",
    "human_button_text",
    "block",
    "#refresh",
    "IoPvj",
    "chlApiRumWidgetAgeMs",
    "168",
    "string",
    "173",
    "UpqME",
    "number",
    "chlApiOverrideDarkmode",
    "UodhB",
    "Qjgan",
    "AppFP",
    "cTplV",
    "LGyu5",
    "HlwIq",
    "qqmjY",
    "ciFbf",
    "9367488eogGVM",
    "gozux",
    "nPMWd",
    "fr-overrun-link",
    "lRrkV",
    "TzIYv",
    "RARIi",
    "itxhz",
    "concat",
    "gGeN3",
    "SFxRP",
    "IRNmJ",
    "ERcQj",
    "WssJc",
    "function",
    "aIdrE",
    "chlApiRefreshTimeout",
    "redirecting_text",
    "uBtiH",
    "wFERd",
    "turnstile_verifying",
    "M38.6525 18.8904H43.3738V20.3453H40.2883V21.3632H43.079V22.7407H40.2883V24.8798H38.6525V18.8904Z",
    "dklT6",
    "uPWrb",
    "success-pre-i",
    "3|1|2|5|4|0",
    "kznPg",
    "api_ls_uu",
    "toLowerCase",
    "tbjnr",
    "ogTZX",
    "esOLO",
    "cqJKJ",
    "setAttribute",
    "wPr",
    "grid",
    "200100",
    "130",
    "EdUcS",
    "OUlba",
    "bfER8",
    "163816FIXvdh",
    "158",
    "bhlbf",
    "oRoQb",
    "153",
    "none",
    "LkjXv",
    "QchWX",
    "tLHSM",
    "call",
    "BQBOc",
    "yeNjx",
    "msLzb",
    "mYMSE",
    "oSKLI",
    "YpzYW",
    "Set",
    "full-stop-",
    "HxPwq",
    "unsupported-browser",
    "BqIZm",
    "JZVEm",
    "ytvJQ",
    "ZDHAT",
    "GTMAs",
    "favicon_alt",
    "agRxf",
    "floor",
    "vXZET",
    "refresh-expired",
    "button",
    "kpHug",
    "fkaUp1",
    "cUuHK",
    "EtJJq",
    "cf-link",
    "YgxbH",
    "156",
    "nbeoq",
    "flow/ov",
    "M60.6149 18.8901H63.4056C64.3083 18.8901 64.9317 19.13 65.328 19.5406C65.6742 19.883 65.8511 20.3462 65.8511 20.9357V20.9526C65.8511 21.8678 65.3691 22.4754 64.6369 22.7919L66.045 24.88H64.1558L62.9671 23.0658H62.2507V24.88H60.6149V18.8901ZM63.3299 21.7654C63.8864 21.7654 64.2071 21.4915 64.2071 21.0551V21.0381C64.2071 20.5674 63.8697 20.328 63.3211 20.328H62.2507V21.7665L63.3299 21.7654Z",
    "OwKv1",
    "mvTNR",
    "1x00000000000000000000AA",
    "pointermove",
    "cuRBT",
    "tatjf7",
    "LIaWc",
    "MPXcJ",
    "hsDwt",
    "svWqo",
    "set:",
    "gxAcZ",
    "XrfBi",
    "itPHt",
    "BRxZJ",
    "wNVde",
    "ksHgb",
    "157",
    "OyUAM",
    "bTKkH",
    "134",
    "aFFlD",
    "GLYyP",
    "display",
    "DCpGR",
    "retry",
    "mousemove",
    "XhZQw",
    "RyjEx",
    "cgNzG",
    "chqWI",
    "jSiSH",
    "fail",
    "logo-text",
    "GJTGM",
    "turnstile_success",
    "rotate(-45 5.45408 5.45404)",
    "full-stop-expired-text",
    "line",
    "chlApiRefreshExpired",
    "chlApiResetSrc",
    "turnstile_footer_terms",
    "139",
    "IzyFA",
    "jdyOo",
    "verifying",
    "KFLzF",
    "PecFT",
    "M66.0758 6.95285C65.9592 6.95285 65.843 6.95582 65.7274 6.96177C65.7087 6.96312 65.6904 6.96719 65.6729 6.97385C65.6426 6.98437 65.6152 7.00219 65.5931 7.02579C65.5711 7.04939 65.555 7.07806 65.5462 7.10936L65.0515 8.84333C64.8389 9.58847 64.918 10.2766 65.2749 10.7827C65.6029 11.2494 66.1498 11.5233 66.814 11.5552L69.4959 11.7186C69.5336 11.7199 69.5705 11.73 69.6037 11.7483C69.6369 11.7666 69.6654 11.7925 69.687 11.8239C69.7092 11.8576 69.7234 11.896 69.7283 11.9363C69.7332 11.9765 69.7288 12.0173 69.7153 12.0555C69.6937 12.118 69.6546 12.1727 69.6028 12.2129C69.5509 12.2531 69.4887 12.2771 69.4236 12.2819L66.6371 12.4453C65.1241 12.5161 63.4937 13.7558 62.9233 15.2682L62.722 15.8022C62.7136 15.8245 62.7105 15.8486 62.713 15.8724C62.7155 15.8961 62.7236 15.9189 62.7365 15.9389C62.7495 15.9589 62.7669 15.9755 62.7874 15.9873C62.8079 15.9991 62.8309 16.0058 62.8544 16.0068C62.8569 16.0068 62.8592 16.0068 62.8618 16.0068H72.4502C72.506 16.0073 72.5604 15.9893 72.6051 15.9554C72.6498 15.9216 72.6823 15.8739 72.6977 15.8195C72.8677 15.2043 72.9535 14.5684 72.9529 13.9296C72.9517 10.0767 69.8732 6.95285 66.0758 6.95285Z",
    "krZRU",
    "ISPXD",
    "tbYId",
    "125",
    "YsHfR",
    "chlApiExecution",
    "iMYoa",
    "131",
    "%E2%80%A2",
    "appendChild",
    "fFpPv",
    "WLbRH",
    "wheel",
    "tKmOn",
    "pjcaJ",
    "YLNrB",
    "oTLnn",
    "polyfills",
    "ueYQj",
    "XVebx",
    "bigint",
    "querySelector",
    "getTime",
    "verifying-msg",
    "WudYJ7",
    "0|6|2|1|4|5|3",
    "mmzlN",
    "XpixW",
    "lhmNu",
    "charAt",
    "error-message-wrapper",
    "<div id=\"qr\">",
    "stringify",
    "pmBXo",
    "UPEkk4",
    "htAAU",
    "cOGUX",
    "execution",
    "oiKdj",
    "bPCtg8",
    "FMbhc",
    "KOUom",
    "IPHSY",
    "cAbmx",
    "cJlNc",
    "FzpFq",
    "VExGw",
    "img",
    "MjkNU",
    "SwHEU",
    "fpjuj",
    "2x00000000000000000000AB",
    "OyQEw3",
    "fr-overrun",
    "uOHgj",
    "overrunBegin",
    "aBDrD",
    "turnstileAgeMs",
    "visibility",
    "d.cookie",
    "600010",
    "evycp6",
    "widgetStale",
    "mIhqU",
    "bcPPS",
    "execute",
    "DSFeN",
    "VFZpV",
    "PXoka",
    "123",
    "CqqWF",
    "<a rel=\"noopener noreferrer\" href=\"https://www.cloudflare.com?utm_source=challenge&utm_campaign=",
    "zDhEj",
    "pVgRB",
    "jAnsC",
    "IGRQo",
    "OHeCo",
    "hLUms",
    "wbkPd",
    "hvIjc",
    "cbUdu",
    "kMseF",
    "BDBRv",
    "XMLHttpRequest",
    "POST",
    "xhr-retry",
    "URL",
    "upgradeAttempts",
    "NOyWn",
    "chlApiClientVersion",
    "challenge-error-text",
    "ie-container",
    "M8.11963 18.8904H9.75541V23.4254H12.6139V24.8798H8.11963V18.8904Z",
    "yIOhs",
    "cZone",
    "timeout-circle",
    "LmPcn",
    "status",
    "fLFmT",
    "cf.turnstile.u",
    "invalid_domain",
    "irEeP",
    "qFOku",
    "1|0|4|3|2",
    "sjupT",
    "50668210KsQNvg",
    "chlApiFailureFeedbackEnabled",
    "GrlRV",
    "\" target=\"_blank\">Cloudflare</a>",
    "</p></div>",
    "113",
    "3|0|4|5|2|1",
    "Function",
    "failure-cross",
    "wosbg",
    "Inovg",
    "nLjwM",
    "oxJvD",
    "getItem",
    "cf-chl-ra",
    "yLeIN",
    "PtUDv",
    "MvKQL",
    "not_embedded",
    "dJYrh",
    "NfNcx",
    "0|7|3|9|1|6|5|4|8|10|2",
    "cf-chl",
    "metadata",
    "iRcsw",
    "AcjYH",
    "tuBix",
    "LGhWm",
    "FWyxq",
    "PylVD",
    ");\"",
    "parse",
    "QqXVH",
    "UZcXT",
    "language",
    "chlApiMode",
    "HmBiE",
    "self",
    "142",
    "114",
    "HntwJ",
    "BjGIw",
    "181",
    "path",
    "XZxUo",
    "rotate(135 24.5459 24.546)",
    "MLOyd",
    "bcsKZ",
    "mbhPw",
    "nqQAF",
    "turnstile_timeout",
    "overrunEnd",
    "ZVlIc",
    "yoBmL",
    "undefined",
    "startsWith",
    "ctp-button",
    "forEach",
    "QYwYz",
    "CuswO",
    "GkFaS",
    "content",
    "zpyLU",
    "prototype",
    "oDsus",
    "160",
    "Envqe",
    "text/javascript",
    "body",
    "setTimeout",
    "LVfmf",
    "2|3|1|4|0",
    "AAlVb",
    "window._",
    "footer_text",
    "dZrjo",
    "FZySV",
    "QRPng",
    "[[[ERROR]]]:",
    "flex",
    "createElementNS",
    "bPUkD",
    "HYyju",
    "log",
    "CjZjs",
    "jiNld",
    "vPzTG",
    "PXLpg",
    "match",
    "gfZOe",
    "className",
    "QCWXz",
    "VllFW",
    "TaQwz",
    "JHyhc",
    "omgxK",
    "OuOtb",
    "hXZFS",
    "dark-mode",
    "oyzSO",
    "hoJYF",
    "always",
    "eLaxQ",
    "MllBR",
    "failure-msg",
    "151",
    "ImCEu",
    "chlApiAction",
    "drvrE",
    "ch_out",
    "redirecting_text_overrun",
    "send",
    "yOvML",
    "_blank",
    "circle",
    "expiry-interval",
    "xfukM",
    "Wafee",
    "parent",
    "qVyxN",
    "104",
    "timeToInitMs",
    "dqKXi",
    "turnstile_footer_privacy",
    "pMxqU",
    "challenge-error",
    "182",
    "cloudflare-challenge",
    "KFRHZ",
    "timeout-i",
    "alert",
    "175",
    "chlApiACCH",
    "jizME",
    "hidden",
    "ttRlU",
    "hrtYp",
    "expired-refresh-link",
    "GCeyQ",
    "XeTWo",
    "class=\"refresh_link\" href=\"#\" onclick=\"window._cf_chl_opt.reloadRequest(",
    "beJUL",
    "fsHZz",
    "XZfYQ",
    "chlApiSitekey",
    "145",
    "yhYx2",
    "MLDnR",
    "translations",
    "closed",
    "eUtoz",
    "having-trouble-message",
    "turnstile_refresh",
    "fill",
    "264vUriOw",
    "WCkXq",
    "WjwM2",
    "syPWR",
    "177",
    "action",
    "keys",
    "pWPkS7",
    "NLveR",
    "VffQf",
    "unsupported_browser_beacon",
    "atob",
    "AODiX6",
    "iITBF",
    "trAbr",
    "gbbKs",
    "SkZrF5",
    "GCLpe",
    "toString",
    "expired-p1",
    "NlkUR",
    "KTsVM",
    "cERlS",
    "expired-text",
    "lfdxw",
    "timeout-text",
    "6|0|1|5|4|2|3",
    "176",
    "HKiqi",
    "cMgBd",
    "WAZft",
    "gnHFY",
    "VHxHb",
    "152",
    ".main-wrapper",
    "JWNrS",
    "msg",
    "QrjXB",
    "xjCDQ5",
    "GPwRp",
    "BPAWm",
    "0|1|3|2|4",
    "/867986789:1756305189:mts0CO0d5uHPMUpgZS58NRctmOSi8fFgWR3nBhO9-UQ/",
    "cTEhI",
    "AlJGK",
    "EzVAv",
    "#content",
    "300010",
    "shift",
    "RLnYq",
    "xmlns",
    "UDwXY",
    "cNIHM",
    "cb-container",
    "chlPageData",
    "test",
    "10 em",
    "TBEcR",
    "chlApiRcV",
    "tGmhF",
    "mDEHx",
    "M30.668 18.8907H32.9445C35.0526 18.8907 36.275 20.1226 36.275 21.8508V21.8684C36.275 23.5963 35.0355 24.88 32.911 24.88H30.668V18.8907ZM32.97 23.4076C33.9483 23.4076 34.597 22.8609 34.597 21.8928V21.8759C34.597 20.9178 33.9483 20.3614 32.97 20.3614H32.3038V23.4082L32.97 23.4076Z",
    "167",
    "iJPua",
    "cITimeS",
    "boolean",
    "HwoJa",
    "kmdyh",
    "CJBKi",
    "tQsRC",
    "fKnnF",
    "nWtss",
    "BLxHa",
    "/cdn-cgi/challenge-platform/",
    "fr-helper-loop",
    "jJsDd",
    "XFfkU",
    "CRSCp",
    "VjYDn",
    "XXtyg",
    "ErFsD",
    "DOMContentLoaded",
    "nqKim1",
    "UMHce",
    "challenge.supported_browsers",
    "MIvDn",
    "VAgA8",
    "BeOlV",
    "IaUnE",
    "rxvSM",
    "AiMCL",
    "141",
    "wmzcn",
    "118",
    "bGyHa",
    "yurwk",
    "cqUt7",
    "QJAnA",
    "DWZJz",
    "getPrototypeOf",
    "nBABF",
    "bpOJa",
    "wOL",
    "turnstile_expired",
    "gJqie",
    "126",
    "SfvwR",
    "ufpPt",
    "hwojZ",
    "zXaJR",
    "Array",
    "ignBX",
    "OaRoo",
    "15128523QILKlz",
    "BRzmA",
    "sKdYD",
    "Worker",
    "uIBPY",
    "expired",
    "149",
    "wOmtq",
    "VHMEm",
    "137",
    "bChQO",
    "BbAZD",
    "PxPsR",
    "uvvw4",
    "lLZrg",
    "Ouija1",
    "ruZhn",
    "inline",
    "undefined-source",
    "sort",
    "StSMB",
    "118|39|52|151|3|86|41|90|113|29|38|123|182|105|17|136|82|50|37|148|66|117|116|83|156|85|70|139|67|111|42|101|28|48|134|120|157|71|74|125|115|4|173|54|40|132|114|13|119|112|59|33|11|176|104|23|49|72|89|153|61|65|171|127|147|80|47|170|43|102|172|145|96|161|44|69|165|20|10|135|155|30|0|26|103|124|92|12|137|79|179|60|169|57|14|84|93|22|143|19|152|162|55|154|110|149|163|109|106|24|97|75|91|166|94|121|18|133|27|180|21|78|88|51|122|183|128|8|159|130|87|184|63|77|36|2|131|34|174|45|178|107|16|64|141|146|150|99|62|73|98|56|35|100|81|164|142|31|140|181|138|58|168|15|167|144|32|53|6|160|158|126|9|175|108|46|25|95|177|76|129|1|68|7|5",
    "jfPcK",
    "AVkCZ3",
    "cb-c",
    "qGHsx",
    "m13,26l9.37,9l17.63,-18",
    "LmVHR",
    "aqwHM",
    "jRgoo",
    "symbol",
    "IHaQ6",
    "FZkCi",
    "checkbox",
    "message",
    "eVyMD",
    "VrcbM",
    "success-i",
    "utEKb",
    "0123456789abcdef",
    "FCviT",
    "innerText",
    "split",
    "PVVTJ",
    "mHLDX1",
    "interactive",
    "cvId",
    "DekBN",
    "qXuYL",
    "IOpHc",
    "UFzkz",
    "chlApiRetry",
    "time-check",
    "overlay",
    "ZyBxs",
    "hfBUc",
    "YyfD6",
    "chlApiOrigin",
    "ch_out_s",
    "bgyFr",
    "LhGSw",
    "4|8|5|1|0|3|9|2|6|7",
    "gprlk",
    "rotate(45 24.5459 5.45405)",
    "121",
    "ZrsLq",
    "UKekV",
    "124",
    "129",
    "chlApiTimeoutEncountered",
    "ROiqN",
    "OLuct",
    "yWqY6",
    "setRequestHeader",
    "complete",
    "tVmHc",
    "timeout",
    "console",
    "iDOoK3",
    "requestExtraParams",
    "logo",
    "upgradeCompletedCount",
    "turnstile-expired-state",
    "<div><p style=\"background-color: #de5052; border-color: #521010; color: #fff;\">",
    "wMLjs",
    "VDjrS",
    "WWsp6",
    "getResponseHeader",
    "sIBko",
    "PMUtM",
    "LAooH",
    "invalid_sitekey",
    "success-text",
    "lPXLl",
    "TMgOX",
    "CBCTh",
    "yRBlg",
    "qHLO6",
    "zXVzz",
    "jGEQV",
    "cTplC",
    "transform",
    "SZipO",
    "href",
    "rMKs-YfoRGiCgeuBNU2L+7l4ThXOVvzqkFn1A5b9xJIPS$pEya6m8tZj0d3cDQwWH",
    "sYkyE",
    "turnstile_failure",
    "KVbNq",
    "catch",
    "animationend",
    "TqxVR",
    "onerror",
    "QbpcF",
    "2|7|0|1|5|3|4|6|8",
    "FKmDR",
    "ewyYi8",
    "QEgqm",
    "HrvFB",
    "0000",
    "add",
    "translationInit",
    "wWCzc",
    "review_connection",
    "weHcS",
    "auoYD",
    "cLt",
    "error-overrun",
    "xrGxr",
    "JkZnh",
    "ESHLb",
    "full-stop-timeout-text",
    "vtKKw",
    "oCLgr",
    "eDXzy",
    "VrCiQ",
    "JjXKt",
    "object",
    "ZDCvY",
    "OsRFI",
    "cyPsk5",
    "prAOT",
    "cxjZt",
    "MCdgs",
    "nbbRE",
    "columnNo",
    "rel",
    "NCbOr",
    "bhUJ3",
    "browser_not_supported_aux",
    "_cf_chl_opt;SkZrF5;nqKim1;OdOr0;rkQkf2;nlowY5;dklT6;IHaQ6;hHPEa6;XaVFY8;FgYP7;cqUt7;qcEMl3;yWqY6;mmuTL3;pWPkS7;xoiFe0;cTRE2",
    "0|1|6|2|8|4|5|3|7",
    "109",
    "Clwlz",
    "vmMUz",
    "AUgYP",
    "splice",
    "Ruki2",
    "LQnHW",
    "getRandomValues",
    "RaetP",
    "169",
    "cxhNY",
    "BankT",
    "height",
    "UYUhd",
    "NEGzy",
    "isNaN",
    "163",
    "xKBIQ",
    "136",
    "Object",
    "jJkOG",
    "oVCPU",
    "aiArF",
    "M68.2112 18.8904H72.9578V20.3024H69.8302V21.209H72.6632V22.5183H69.8302V23.4683H73V24.8798H68.2112V18.8904Z",
    "now",
    "jcwmF",
    "link-spacer",
    "createElement",
    "role",
    "wtvsA",
    "fMDMR",
    "kHAdE",
    "getElementById",
    "XGRcD",
    "success-circle",
    "vmrIP2",
    "min",
    "pFFpZ",
    "ENTCM",
    "ReadableStream",
    "EOSIb",
    "visible",
    "UxAcl",
    "interactiveTimeout",
    "chlApicData",
    "stack",
    "HpCDe",
    "6|2|7|1|4|0|3|5",
    "vzrgf",
    "bind",
    "axluy",
    "inline-block",
    "turnstile_feedback_description",
    "Xjcxr",
    "cf_ch_out_s",
    "AljSN",
    "MkLPX",
    "KWovE",
    "extraParams",
    "USSRS",
    "turnstile_overrun_description",
    "offlabel",
    "zdZfO",
    "interactiveEnd",
    "vTDuY",
    "YQpci",
    "147",
    "err",
    "#ie-container",
    "noopener noreferrer",
    "ArTNq",
    "#fail-i",
    "YeYaO",
    "mWVxx",
    "encode",
    "xGxgT",
    "fromCodePoint",
    "PwILq",
    "privacy-link",
    "ljzcc",
    "oRZxt",
    "rneHR",
    "innerHTML",
    "100",
    "#LsMgo8",
    "tHPdv",
    "polite",
    "dEuMx",
    "xSFUY",
    "YxpwR",
    "FUcTB",
    "fr-helper-link",
    "ZuBUF",
    "PdDWY",
    "ariaAtomic",
    "iHORQ",
    "codePointAt",
    "bIaAY",
    "KGQTp",
    "5|3|6|1|0|4|2",
    "addEventListener",
    "6|20|11|2|17|18|4|1|15|0|19|16|13|12|7|9|5|8|14|3|10",
    "nUDsB",
    "url",
    "EOXZZ5",
    "dwtA3",
    "MLIwG",
    "BqtZu",
    "ZlcXF",
    "testing_only",
    "izTHt",
    "fRkWy",
    "iLopE",
    "KwJSM",
    "MNTXj",
    "GEXgt",
    "1x00000000000000000000BB",
    "sLcCV",
    "NEGHF",
    "NSnoi",
    "Quepi",
    "pop",
    "FXeqL",
    "chlTimeoutMs",
    "VHoTe",
    "retry-interval",
    "overrunning",
    "xzhDQ",
    "dir",
    "CBeXN",
    "cb-lb-t",
    "tEyEj",
    "bAdB7",
    "ohnAt",
    "init",
    "vHZfa",
    "rotate(-135 5.4541 24.5459)",
    "BVOAk",
    "mJZLs",
    "interactiveBegin",
    "/b/ov1/867986789:1756305189:mts0CO0d5uHPMUpgZS58NRctmOSi8fFgWR3nBhO9-UQ/",
    "aKYVJ",
    "aria-hidden",
    "#cwvTU2",
    "NAFxT",
    "ycUhW",
    "UvdqE",
    "woHxV",
    "TOhku",
    "GOyyP",
    "FbbBG",
    "174",
    "yeBgz",
    "expiry-msg",
    "cRay",
    "chlApiChlPageData",
    "SUMPP",
    "dQrEW",
    "verifying-container",
    "aEqpw",
    "wXKyd",
    "pkFSI",
    "cf_ch_out",
    "mmuTL3",
    "time_check_cached_warning",
    "QlUoU",
    "usDud",
    "QgEKU",
    "</div>",
    "imscp",
    "turnstile_iframe_alt",
    "Bvwlh",
    "XchIU5",
    "(prefers-color-scheme: dark)",
    "charCodeAt",
    "WAUcm",
    "KdCQv",
    "5|1|7|2|3|6|4|0",
    "%{placeholder.com}",
    "QPGna",
    "gsjcL",
    "ourCy",
    "top",
    "uJDXl",
    "nNthn",
    "yJttz",
    "ECfJs",
    "CaRFx",
    "xQEGm",
    "xEvXx",
    "push",
    "WjKOI",
    "\"you\"===\"bot\"",
    "RqpkA",
    "dpgiV",
    "SNTat",
    "NcqZh",
    "XTyWH",
    "pointerover",
    "BdwtO",
    "NuoBx",
    "mHQcb",
    "DObIv",
    "178",
    "error",
    "FkGnL",
    "chlApiExpiryInterval",
    "2x00000000000000000000BB",
    "gmqRe",
    "flHTe",
    "open",
    "DKAJy",
    "rotate(180 15 28.5)",
    "LjLrq",
    "mHAdN",
    "IMwEF",
    "UkzFT",
    "matches",
    "timeToRenderMs",
    "refreshRequest",
    "NLygL",
    "vDHJU",
    "TJfDM",
    "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",
    "chlApiWidgetId",
    "replace",
    "bmPXj",
    "CaRMi",
    "footE",
    "remove",
    "/cdn-cgi/challenge-platform/h/",
    "touchstart",
    "hoRzW",
    "tcmnr",
    "nmbo5",
    "snmGG",
    "onreadystatechange",
    "JDYKM",
    "auto",
    "errorInfoObject",
    "bBbZo",
    "127",
    "0|1|3|5|2|4",
    "pnSRv",
    "GkqXy",
    "nVcwh",
    "token",
    "QmEro",
    "_cf_chl_opt",
    "NiFrH",
    "div",
    "from",
    "XBQGv",
    "IJfeJ1",
    "M15.9288 16.2308H13.4273L13.073 7H16.2832L15.9288 16.2308ZM14.6781 19.1636C15.1853 19.1636 15.5918 19.3129 15.8976 19.6117C16.2103 19.9105 16.3666 20.2927 16.3666 20.7583C16.3666 21.2169 16.2103 21.5956 15.8976 21.8944C15.5918 22.1932 15.1853 22.3425 14.6781 22.3425C14.1778 22.3425 13.7713 22.1932 13.4586 21.8944C13.1529 21.5956 13 21.2169 13 20.7583C13 20.2997 13.1529 19.921 13.4586 19.6222C13.7713 19.3164 14.1778 19.1636 14.6781 19.1636Z",
    "ezkFW",
    "sDDIY",
    "sXqWP",
    "164",
    "jZjfG",
    "0 0 30 30",
    "uywRS"
]
console.log("dict length:", dict.length);

// ========= 2. 收集所有别名（含 Zs -> g 链条） =========
const aliases = new Map(); // key -> pointsTo
// 入口别名（保持你原来的假设）
aliases.set("L", "L");
aliases.set("ml", "L");

function collectAliases(ast) {
  traverse(ast, {
    AssignmentExpression(path) {
      const { left, right } = path.node;
      if (t.isIdentifier(left) && t.isIdentifier(right)) {
        if (aliases.has(right.name)) {
          aliases.set(left.name, aliases.get(right.name));
        }
      }
    },
    VariableDeclarator(path) {
      const { id, init } = path.node;
      if (t.isIdentifier(id) && t.isIdentifier(init)) {
        if (aliases.has(init.name)) {
          aliases.set(id.name, aliases.get(init.name));
        }
      }
    }
  });
}
collectAliases(ast);
console.log("aliases:", Array.from(aliases.entries()));

// ========= 3. 收集形如 uT = { i:954, O:954, ... } 的常量对象 =========
// 这些对象在内层函数里频繁出现，用于 EQ(uT.i) 这种取参。
// 我们做一个“最近一次赋值”为准的全局快照，足以应对常见模式（for-init/var/赋值）。
const constObjMap = new Map(); // name -> { key: number }

function recordConstObject(idName, objExpr) {
  const table = Object.create(null);
  for (const prop of objExpr.properties) {
    // 支持 Identifier/ StringLiteral 作为 key，NumberLiteral 作为 value
    if (!t.isObjectProperty(prop)) continue;
    const keyName = t.isIdentifier(prop.key)
      ? prop.key.name
      : t.isStringLiteral(prop.key)
      ? prop.key.value
      : null;
    if (!keyName) continue;
    if (t.isNumericLiteral(prop.value)) {
      table[keyName] = prop.value.value;
    }
  }
  constObjMap.set(idName, table);
}

traverse(ast, {
  VariableDeclarator(path) {
    const { id, init } = path.node;
    if (t.isIdentifier(id) && t.isObjectExpression(init)) {
      recordConstObject(id.name, init);
    }
  },
  AssignmentExpression(path) {
    const { left, right } = path.node;
    if (t.isIdentifier(left) && t.isObjectExpression(right)) {
      recordConstObject(left.name, right);
    }
  }
});

console.log("const objects:", Array.from(constObjMap.keys()));

// ========= 4. 工具函数 =========
const OFFSET = 466; // 你的脚本里写死的偏移量

function resolveAlias(name) {
  return aliases.get(name) || name;
}

function evalArgToNumber(node) {
  // 仅解析我们关心的几类：数值字面量、uT.i 这种 MemberExpression
  if (t.isNumericLiteral(node)) return node.value;

  if (t.isMemberExpression(node) && !node.computed) {
    // 形如 uT.i
    if (t.isIdentifier(node.object) && t.isIdentifier(node.property)) {
      const objName = node.object.name;
      const propName = node.property.name;
      const table = constObjMap.get(objName);
      if (table && Object.prototype.hasOwnProperty.call(table, propName)) {
        return table[propName];
      }
    }
  }

  // 形如 uT["i"] 或 uT[0x123]
  if (t.isMemberExpression(node) && node.computed) {
    if (t.isIdentifier(node.object)) {
      const objName = node.object.name;
      const table = constObjMap.get(objName);
      if (table) {
        if (t.isStringLiteral(node.property)) {
          const k = node.property.value;
          if (Object.prototype.hasOwnProperty.call(table, k)) return table[k];
        }
      }
    }
  }

  return undefined; // 解析失败则返回 undefined
}

function tryDecodeIndex(num) {
  if (typeof num !== "number") return undefined;
  const realIndex = num - OFFSET;
  if (realIndex < 0) return undefined;
  return dict[realIndex];
}

// ========= 5. 替换所有 EQ(uT.xxx) / Zs(uT.xxx) 的调用 =========
// 这会自然覆盖：
//   - j[EQ(uT.i)] = ...
//   - Z[EQ(uT.O)](null, O)
//   - Object[EQ(uT.Z)](O)
//   - L = L[EQ(uT.j)](...)
// 以及任何作为属性计算位置出现的 CallExpression。
traverse(ast, {
  CallExpression(path) {
    const callee = path.node.callee;
    if (!t.isIdentifier(callee)) return;

    const resolved = resolveAlias(callee.name);
    if (resolved !== "L") return; // 只处理解密核心函数的别名

    if (path.node.arguments.length < 1) return;
    const num = evalArgToNumber(path.node.arguments[0]);
    const decoded = tryDecodeIndex(num);

    if (decoded !== undefined) {
      path.replaceWith(t.stringLiteral(String(decoded)));
    }
  }
});

// ========= 6. 二次清理：把 obj["prop"] 规范化成 obj.prop =========
// （非必须，但可读性更好；仅在 prop 是合法标识符时这么做）
// traverse(ast, {
//   MemberExpression(path) {
//     if (!path.node.computed) return;
//     const { object, property } = path.node;
//     if (t.isStringLiteral(property) && t.isIdentifier(object)) {
//       const key = property.value;
//       // 简单判断是否是合法标识符
//       if (/^[A-Za-z_$][0-9A-Za-z_$]*$/.test(key)) {
//         path.replaceWith(t.memberExpression(object, t.identifier(key), false));
//       }
//     }
//   }
// });

// ========= 7. 输出 =========
const out = generator(ast, { compact: false }).code;
fs.writeFileSync(outputPath, out, "utf8");
console.log("done:", outputPath);